Ray-tracing rendering

2012-03-04 22:57:56

Here is my latest efforts at programming computer graphics. This is an image created by a C program I wrote, a program of about 1000 lines of code. The scene here shows four "implicit surfaces" (surfaces defined by mathematical equations); these are reflective, show highlights and cast shadows. Nothing is transparent, which makes the "water" look rather unnatural (it looks like blue ink). The nice thing about this image is something under the hood: I've improved the functions that find the intersection of ray of light with an implicit surface; they seem to be reasonably reliable and fast. (This is a bit tricky: if you try to speed the process up of seeing if a ray intersects an object, you're apt to miss the object's edges. This can appear as scalloped edges, but the present rendering does not seem to suffer from that problem.) By the way, it takes a minute or two for my MacBook Pro to render this image, which is about 1000 pixels by 1000 pixels.

My goal with this is to gain enough control over programming graphics to be able to create genuine art with my software, as opposed to pretty programming exercises. I hope the improvements to the code I've accomplished with this rendering will enable me to do much more interesting images, but it might be some time before I can get back to this.